#include "porting.h"

#include "sql_func.h"
#include <stdio.h>

struct SQL_node_func_t SQL_func_map[S_FUNC_TYPE_COUNT] = 
{
  { "none"          , NULL },
  { "abs"           , NULL },
  { "ceil"          , NULL },
  { "char_length"   , NULL },
  { "char"          , NULL },
  { "decode"        , NULL },
  { "decr"          , NULL },
  { "DRAND"         , NULL },
  { "DRANDOM"       , NULL },
  { "EXP"           , NULL },
  { "FLOOR"         , NULL },
  { "GREATEST"      , NULL },
  { "GROUPBY_NUM"   , NULL },
  { "INCR"          , NULL },
  { "INST_NUM"      , NULL },
  { "INSTR"         , NULL },
  { "LAST_DAY"      , NULL },
  { "LEAST"         , NULL },
  { "LOG"           , NULL },
  { "LPAD"          , NULL },
  { "LTRIM"         , NULL },
  { "MODULUS"       , NULL },
  { "MONTHS_BETWEEN", NULL },
  { "NVL"           , NULL },
  { "NVL2"          , NULL },
  { "ORDERBY_NUM"   , NULL },
  { "POWER"         , NULL },
  { "RAND"          , NULL },
  { "RANDOM"        , NULL },
  { "ROUND"         , NULL },
  { "RPAD"          , NULL },
  { "RTRIM"         , NULL },
  { "SIGN"          , NULL },
  { "SQRT"          , NULL },
  { "SUBSTRING"     , NULL },
  { "TO_CHAR"       , NULL },
  { "TO_DATE"       , NULL },
  { "TO_DATETIME"   , NULL },
  { "TO_NUMBER"     , NULL },
  { "TO_TIME"       , NULL },
  { "TO_TIMESTAMP"  , NULL },
  { "TRUNC"         , NULL },

  { "PLUS"          , NULL },
  { "MINUS"         , NULL },
  { "STRCAT"        , NULL },
  { "TIMES"         , NULL },
  { "POSITION"      , NULL },
  { "DIVIDE"        , NULL },
  { "TRIM"          , NULL },
  { "OCTET_LENGTH"  , NULL },
  { "LOWER"         , NULL },
  { "UPPER"         , NULL },
  { "AVG"           , NULL },
  { "MIN"           , NULL },
  { "MAX"           , NULL },
  { "SUM"           , NULL },

  { "UNARY_MINUS"   , NULL },
  { "BIT_LENGTH"    , NULL },
  { "TRANSLATE"     , NULL },
  { "STDDEV"        , NULL },
  { "NULLIF"        , NULL },
  { "EXTRACT"       , NULL },
  { "YEAR"          , NULL },
  { "MONTH"         , NULL },
  { "DAY"           , NULL },
  { "HOUR"          , NULL },
  { "MINUTE"        , NULL },
  { "SECOND"        , NULL },
  { "OR"            , NULL },
  { "AND"           , NULL },
  { "NOT"           , NULL },
  { "EXISTS"        , NULL },
  { "EQ"            , NULL },
  { "EQ_ALL"        , NULL },
  { "EQ_SOME"       , NULL },
  { "NE"            , NULL },
  { "NE_ALL"        , NULL },
  { "NE_SOME"       , NULL },
  { "GT"            , NULL },
  { "GT_ALL"        , NULL },
  { "GT_SOME"       , NULL },
  { "GE"            , NULL },
  { "GE_ALL"        , NULL },
  { "GE_SOME"       , NULL },
  { "LT"            , NULL },
  { "LT_ALL"        , NULL },
  { "LT_SOME"       , NULL },
  { "LE"            , NULL },
  { "LE_ALL"        , NULL },
  { "LE_SOME"       , NULL },
  { "NOT_LIKE"      , NULL },
  { "LIKE"          , NULL },
  { "IS_NOT_NULL"   , NULL },
  { "IS_NULL"       , NULL },
  { "NOT_BETWEEN"   , NULL },
  { "BETWEEN"       , NULL },
  { "IS_IN"         , NULL },
  { "IS_NOT_IN"     , NULL },
  { "PRIOR"         , NULL },
};

/*
struct function_map *
find_function_by_name (const char* name)
{
  struct function_map * m;
  char s[64];

  strncpy (s, name, sizeof(s));
  strlwr (s);

  for ( m = sql_function_map; m->name; m++)
  {
    if  (strcmp(s, m->name) == 0)
    {
      return m;
    }
  }

  return NULL;
};
*/